\chapter{Grabber Editor : Module de gestion du fichier Grabber}\label{ch:grabber}

%\section
%\subsection
%\subsubsection
%\paragraph{Import à partir d'un fichier}

L'objectif du Grabber Editor est de simplifier la création et le controle de l'import de fichier de log dans notre système PRISME.
L'application est découpé en 2 phases. La première va nous permettre de spécifier la cible, la seconde les paramètres de récupération qui lui sont affectés.

\section{Page 1 : Cible}

\begin{figure}
\centering
\includegraphics[scale=0.6]{../img/impEcr/grabberPage1.jpg}
\caption{Vue de la Page 1 du Grabber}
\label{grabP1}
\end{figure}

Dans un premier temp, il nous est nécessaire de renseigner les informations de localisation (\textit{PFS} : Plateforme de Service, \textit{Srv\_Type} : Type de serveur) de nos serveurs cibles. Ces informations sont indispensables et permettent de trier les serveurs pour ne conserver que ceux recherchés comme on peut le voir \ref{grabStep1}.
\begin{figure}
\centering
\includegraphics[scale=0.8]{../img/impEcr/grabImg1.jpg}
\caption{Aperçu de l'outil de sélection de serveur}
\label{grabStep1}
\end{figure}
On sélectionne maintenant les serveurs qui nous interessent parmi la liste via le comportement standard des double-listes. Celle de gauche offre les choix, celle de droite notre sélection.
A noter, le bouton \textit{new} permet d'ajouter un serveur qui n'est pas encore référencé dans la base de donnée. Cette fonctionnalité sera explicitée plus en détail ci-après \ref{ajoutSrv}.

On remplira finalement les dernières informations nécessaires pour accéder au fichier de log souhaité : 
\begin{itemize}
	\item{LogType} renseigne le type de log étudié (utile pour le tri et les recherches ultérieures).	
	\item{Path} spécifie le chemin d'accès au fichier de log (commun à tous les serveurs sélectionnés).
	\item{Src\_path} précise le chemin d'accès aux fichiers de log sauvegardé (i.e. pour des accès aux fichiers de log de date différente du jour même).
\end{itemize}
On notera que l'on dispose d'un groupe de bouton commençant par "\$" ceux-ci représentent des variables bash utilisable par l'utilisateur et qui peuvent composer \textit{Path} ou \textit{Src\_Path}. Seules les cinq variables les plus utilisées sont ainsi accessibles les autres étant plus spécifiques et pour plus d'information sur celles-ci veuillez contacter l'équipe PRISME.

De plus, il nous est possible de charger n'importe quel fichier de Grabber précedemment réalisé et ainsi de le modifier ou dupliquer, l'ensemble du processus se déroulant de la même façon mais avec l'ensemble des entrées préremplies.

\subsection{Ajout de serveur}\label{ajoutSrv}
Une particularité de l'interface est l'ajout de serveur. En effet, afin de pouvoir valider l'ajout d'un nouveau serveur il est nécessaire de vérifier l'accès à celui-ci. Pour ajouter un nouveau serveur, il faut donc remplir les informations demandées dans la fenetre \ref{addSrvWin}.
\begin{figure}
\centering
\includegraphics[scale=0.7]{../img/impEcr/addSrvWin.jpg}
\caption{Fenetre d'ajout de serveur}
\label{addSrvWin}
\end{figure}
L'utilitaire va ensuite tenté de se connecter sur ce serveur et affiché à l'utilisateur le rendu de l'opération.
Plusieurs cas de succès se présente à nous, si le serveur existe, que l'utilisateur transfer existe, et que l'échange des clefs SSH a été réalisé préalablement alors l'opération est réussie.
Sinon il faudra créer l'utilisateur et procéder à l'échange de clef avec le serveur d'extraction des fichiers de log. Pour se faire, il faudra renseigner le nom et le mot de passe du compte de pivot-root permettant ainsi au script d'effectuer le traitement automatiquement ou bien procéder manuellement.

Dans les autres cas, le serveur est ajouté à notre liste mais l'on devra impérativement le signaler à l'équipe PRISME et régler les différentes contraintes pour pouvoir analyser les fichiers de log.

\section{Page 2 : Options d'extraction}

La figure \ref{grabStep2} présente la visualisation de notre 2ème page qui se concentre sur la configuration de notre extraction et les premiers traitements qui sont réalisés.

On trouve en premier lieu les 10 dernières lignes de notre fichier de log sur le premier server de la liste(si celui-ci a des problèmes alors on essaie les suivants). Dans le cas, où la récupération du fichier de log échoue, le retour de console s'affichera (permettant de détecter l'éventuelle erreur). De plus, cette zone peut également servir de test pour certaines fonctions des modes et on peut donc modifier son contenu pour réaliser des tests spécifiques.

On s'est donc assuré de l'accès aux fichiers de log, on doit maintenant définir de quel façon on compte les extraire. Les deux modes les plus utilisés sont les deux modes implémentés actuellement.
\begin{itemize}
	
	\item{\bf{SCP mode}} Ce mode correspond à l'extraction journalière du fichier de log. La seule information à spécifier est l'heure à laquelle on souhaite réaliser cette extraction.

	\item{\bf{Real-Time Mode}} On cherche ici à extraire le fichier de manière régulière (\textit{Extraction frequency} en minute). L'interface pour le paramètrer est visible sur l'image \ref{grabStep2}. On notera qu'avec ce mode on identifie la date via une expression régulière que l'on pourra tester directement (attention: le testeur de l'interface est réalisé en javascript, là où cette expression sera utilisé par PRISME en Java, des incohérences/différences sont possibles).
\end{itemize}
Enfin, on choisit le nom de notre fichier grabber final et on le sauvegarde sur le serveur via \textit{next}. La dernière page de l'assistant nous affiche le fichier tel qu'il a été sauvegardé sur le serveur.

\begin{figure}
\centering
\includegraphics[scale=0.7]{../img/impEcr/grabImg2.jpg}
\caption{Vue de l'interface de paramètrage de l'extraction}
\label{grabStep2}
\end{figure}



